Objeto: Tarea
Símbolo:
La tarea se configura en el objeto. Puede configurar la prioridad, el tipo con el comportamiento temporal y un organismo de control. También puedes añadir PROGRAM
llamadas.
El objeto se encuentra en el árbol de dispositivos, debajo del Configuración de tareas.
Pestaña: Configuración
Objeto: Tarea
Prioridad | Valores posibles: 0..31, donde 0 es la prioridad más alta |
Tarea grupal | Asignado grupos de tareas que se puede asignar a núcleos de procesador específicos en multinúcleo Ejemplo: Tareas de IEC Nota: El grupo de tareas se muestra entre paréntesis después de la tarea en el árbol de dispositivos. |
Importante
Cuando se utiliza un sistema de tiempo de ejecución en Linux, existen dependencias fijas entre grupos de tareas y prioridades. Para más información, ver: Mapeo de prioridades de tareas en un sistema Linux
Escribe
Tipo: | El procesamiento de la tarea se realiza cíclicamente. |
Campo de entrada Intervalo | Requerido Lapso de tiempo después del cual se reinicia la tarea (tiempo de ciclo de la tarea)
Nota: Las desviaciones de la tarea con respecto al tiempo deseado del ciclo de tareas se muestran durante el tiempo de ejecución como fluctuaciones periódicas en el Pestaña: Monitoreo pestaña. |
Unidad de tiempo del intervalo | Si sólo se especifica un número y no una definición de tiempo en el Intervalo campo de entrada, entonces la unidad seleccionada aquí determina las dimensiones de tiempo. Ejemplo: Sra Nota: El tiempo de ciclo de una tarea en µs siempre se muestra como un número. |
Tipo: | El procesamiento de la tarea comienza controlado por eventos en el flanco ascendente de la variable de evento. |
Campo de entrada Evento | Variable global (tipo booleano) La tarea comienza tan pronto como el valor de la variable cambia de 0 a 1. |
Tipo: | El procesamiento de la tarea comienza controlado por eventos en el flanco ascendente de la variable de evento. |
Cuadro de lista Evento | Lista con eventos dependientes del sistema de destino (tipo booleano) Nota: El sistema de destino determina qué eventos se admiten y se ofrecen en el cuadro de lista. Sugerencia: no debe confundirse con los eventos del sistema. |
Intervalo | Definición de tiempo en Nota: Solo disponible cuando el evento requiere una definición de tiempo |
Tipo: | El procesamiento de la tarea se reinicia automáticamente en un bucle continuo al inicio del programa y al final de la ejecución tras un cierto tiempo de espera Importante: Tras completar una ejecución, se espera cierto tiempo antes de volver a ejecutar la tarea. La duración es un porcentaje de la duración del último ciclo. Nota: No se define un tiempo de ciclo. |
Tipo: | El procesamiento de la tarea comienza activado por el estado de las variables de evento |
Campo de entrada Evento | Variable global (tipo booleano) Cuando la variable tiene el estado Nota: La variable normalmente se restablece en la propia tarea. A diferencia de la tarea de eventos, no se puede omitir ningún evento de esta manera. Cuando se produce un evento, el programador debe guardar un valor antiguo, y este puede cambiar con más frecuencia de la que se verifica. Por lo tanto, si una variable de evento cambia a |
Importante
Para los buses de campo, es necesaria una matriz de ciclo fijo para garantizar un comportamiento determinado. Por lo tanto, no debe utilizar el Ejecución libre escriba para una tarea de bicicleta en autobús.
Importante
Tenga en cuenta la siguiente diferencia entre los tipos de procesamiento Estado y Evento. Si el evento dado produce TRUE
, entonces la condición de inicio de una tarea de tipo Estado se ha completado. Por el contrario, el inicio de una tarea de tipo Evento requiere un cambio del evento de FALSE
para TRUE
. Si la frecuencia de muestreo del programador de tareas es demasiado baja, el borde ascendente del evento puede pasar desapercibido.
Importante
Al configurar el tiempo de ciclo de la tarea, debe identificar qué sistema de bus se está utilizando actualmente. Por ejemplo, el tiempo de ciclo de la tarea en un sistema de bus CAN debe coincidir con la tasa de baudios establecida actualmente y la cantidad de tramas utilizadas en el bus. Además, los tiempos establecidos para el latido, la protección de nodos y la sincronización siempre deben ser un múltiplo del tiempo del ciclo de la tarea. De lo contrario, se pueden perder tramas CAN.
Para más información, ver: Pestaña: Monitoreo
Perro guardián
Define la supervisión del tiempo para una tarea. Si el sistema de destino admite una configuración de vigilancia avanzada, las siguientes configuraciones pueden estar predefinidas en la descripción del dispositivo.
La configuración de vigilancia predeterminada depende del dispositivo. | |
Activar |
Si la tarea supera el tiempo establecido actualmente por el organismo de control, la tarea se detiene con un estado de error (excepción). La aplicación en cuya tarea se produjo el error y sus aplicaciones secundarias también se detienen. De esta forma, también se detienen todas las tareas de las aplicaciones afectadas. Luego, lo definido actualmente Sensibilidad también se tiene en cuenta. Si activas la opción Actualice las E/S en el Configuración de PLC del PLC, entonces CODESYS restablece las salidas a los valores predeterminados definidos. . Posibles casos:
|
Tiempo (por ejemplo, t #200ms) | tiempo de vigilancia Define (junto con Sensibilidad) el perro guardián de una tarea; descripción en cuanto a Habilitar. Según el sistema de destino, el lapso de tiempo de monitoreo se proporciona como un porcentaje del intervalo de la tarea, si es posible. En este caso, el cuadro de lista de la unidad está desactivado y muestra %. |
Sensibilidad | Número Define (junto con el perro guardián) el perro guardián para una tarea; descripción en cuanto a Habilitar. |
Sugerencia
Uso de las funciones de la biblioteca CmpIecTask.library
, puede desactivar un watchdog para ciclos de PLC específicos. Esto es útil para ciclos que demandan más tiempo debido a la inicialización.
Desactivar/reactivar el watchdog:
VAR hIecTask : RTS_IEC_HANDLE; END_VAR hIecTask := IecTaskGetCurrent(0); IecTaskDisableWatchdog(hIecTask); //Watchdog disabled ... IecTaskEnableWatchdog(hIecTask); //Watchdog enabled
El perro guardián se utiliza antes de la inicialización con IecTaskDisableWatchDog
se apaga por el resto del ciclo y se vuelve a activar automáticamente en el siguiente ciclo.
Después de la inicialización, el perro guardián puede ser IecTaskEnableWatchDog
volver a encenderse. Entonces, la supervisión vuelve a estar activa para el resto del ciclo (la ventana de tiempo de vigilancia comienza de nuevo).
Inicializaciones de bloques de funciones que ocurren dentro del FB_Init
el método no se ve afectado por esto. Pero había un límite de menos de 30 segundos debido al tiempo de espera de la comunicación. Este límite de tiempo ya no existe desde la versión 3.5 SP18 porque los servicios en línea se ejecutan de forma asincrónica
.
Sugerencia
El mecanismo de vigilancia normal de una tarea IEC se activa cuando el tiempo de ejecución de la tarea IEC supera el tiempo de vigilancia.
El perro guardián "Ciclo omitido" se activa cuando la tarea no se inicia en absoluto. Este es el caso cuando la tarea no ejecuta ningún ciclo dentro del máximo de <Hora * Sensibilidad> o <2 * Intervalo>. La causa podría ser el amontonamiento de otras tareas o una falla en el planificador, que ya no habilita la tarea.
Convocatorias del programa
POU (POU objeto con tipo El orden en el que se llaman las POU corresponde al orden de llamadas configurado aquí de arriba a abajo. | |
| Abre el Asistente de entrada. Seleccione un |
| Elimina la llamada |
| Abre el Asistente de entrada para la llamada seleccionada. Selecciona otro |
| Mueve la posición de la llamada hacia arriba o hacia abajo en la lista. El orden de las llamadas cambia en consecuencia durante el tiempo de ejecución. |
| Abre el editor POU con la declaración y la implementación del |